Blockchain: Is it a hype or a hoax? 9
Consensus algorithm
Consensus is a mechanism to reach an agreement in a group. A consensus
algorithm (also known as a consensus mechanism or consensus protocol) is
a digital method by which a decision can be reached in a decentralised envi-
ronment. In theory, an attacker can compromise consensus by controlling
51% of the network. Consensus mechanisms are designed to make a ‘51%
attack’ unfeasible or difficult.
In order to understand consensus, it is essential to learn more about the
‘Byzantine Generals’ Problem’.
Situation and Task:
There is a group of Byzantine generals. They want to attack a city in a
coordinated fashion as that is the only way to win.
Problem:
• The generals and their armies are scattered and far away, so central-
ised authority is impossible. This makes it difficult to support coordi-
nated attacks.
• The city has a huge army and the only way to win is if they attack
together at once.
Solution:
In order to make a coordinated attack, the armies on the left of the castle
need to send a messenger to the armies on the right of the castle with a mes-
sage that says ‘ATTACK WEDNESDAY’.
However, if the armies on the right are not prepared for the task and say,
‘NO ATTACK FRIDAY’ and send back the messenger through the city
back to the armies on the left.
This is where they face a problem.
Public
Private
Consortium
Hybrid
Network Structure
Decentralised
Centralised
Partly Decentralised
Partly Decentralised
Access
Permissionless
Permissioned
Permissioned
Mix of Permissioned
and Permissionless
Performance
Slower (~10 minutes)
Faster as number of
participants are
limited
Vary by number of
participants nodes in
the network
Vary by number of
participants nodes in
the network
Consensus
Proof of Work, Proof
of Stake
Pre-approved
Proof of Stake, Proof
of authority
Proof of Stake, Proof
of authority
Identity
Anonymous
Known identities
Known identities
Known identities
Use cases
Cryptocurrencies
Confidential
documents audit
Supply chain, Trade
Finance
Land registry for
assets
Current examples
Bitcoin, Ethereum
R3 Corda, Quorum,
Multichain
R3 Corda, Hyper
Ledger
R3 Corda, Hyper
Ledger
Figure 1.4 Types of blockchain.